package com.yunhe.merchants.service;

import com.yunhe.common.exception.ArgumentErrorException;
import com.yunhe.common.exception.ModelNotFoundException;
import com.yunhe.common.model.mybatis.PageResult;
import com.yunhe.merchants.domain.MyProject;
import com.yunhe.merchants.model.FilterCondition;
import com.yunhe.merchants.model.HousingMerchantsInfo;
import com.yunhe.merchants.model.SuccessProjectUpload;

import java.util.List;

/**
 * @Author: DongWenYu
 * @Date: 2021/5/7 21:04
 */
public interface ISuccessProjectService extends IMyProjectService{

    /**
     * 根据条件分页查询成功项目
     * @param filterCondition 
     * @param userId 
     * @param page 
     * @param size
     * @return com.yunhe.common.model.mybatis.PageResult 
     * @create 2021/5/12 15:09
     */
    PageResult selectByFilterCondition(FilterCondition filterCondition, Long userId, int page, int size);

    /**
     * 在一个月内将离场的成功项目
     * @create 2021/5/12 15:12
     */
    void leaveInMonth() throws ModelNotFoundException, ArgumentErrorException;
    /**
     * 导出
     * @param ids 
     * @param filterCondition
     * @return java.util.List<com.yunhe.merchants.model.SuccessProjectUpload> 
     * @create 2021/5/12 15:43
     */
    List<MyProject> export(String ids, FilterCondition filterCondition);
    
    /**
     * 批量导入成功项目
     * @param successProjectUploads 
     * @param userId
     * @return void 
     * @create 2021/5/12 15:54
     */
    void upload(List<SuccessProjectUpload> successProjectUploads , Long userId , Long stationId) throws ModelNotFoundException, ArgumentErrorException;

    /**
     * 成功项目离场
     * @return void 
     * @create 2021/5/13 15:44
     */
    void leave() throws ArgumentErrorException, ModelNotFoundException;

    /**
     * @Description 房源管理查看招商信息
     * @Param Long id
     * @Return HousingMerchantsInfo
     * @Date 2021/6/25 11:34
     */
    HousingMerchantsInfo getMerchantsInfo(Long id);
}
